Companies today rely to an unprecedented extent on online, frequently accessed, constantly changing data to run their businesses. Unplanned events that inhibit the availability of data and applications can seriously damage business operations. Therefore, when disaster strikes, companies must be prepared to eliminate or minimize data loss or application functionality.
Specifically, in the context of contact centers many applications (e.g., automated response units such as an Interactive Voice Response (IVR), Internet Protocol (IP) Call Recording, and other Session Initiation Protocol (SIP) voice applications) are called on regularly to conduct business operations. The importance of these applications to the contact center operation is so important that if one application were to fail important data and/or business may be lost and customer satisfaction may be negatively impacted. The performance of many contact centers is directly tied to revenues of the business and as many contact centers operate 24 hours a day, 7 days a week, it is very important that components of a call center offer high availability options to minimize down time.
With Reference to FIG. 1, an exemplary high availability application for a contact center according to the prior art is shown. Most high availability systems include a communication network 104, a switch 108, multiple servers 112a-b, and a database 116. A plurality of agent communication devices 124 are connected to the switch 108 via link(s) 126. Each server 112a and 112b is connected to the switch 108 via separate communication lines 110a and 110b respectively.
The first server 112a generally provides a first application to a contact received by the switch 108 and stores event and other state of the contact data in the database 116. The first server 112a further mirrors event data received from the switch 108 to the second server 112b in case the first server 112a fails. To minimize switch 108 endpoint identifier usage, the first server 112a is registered with the switch 108 while the second server 112b monitors the performance of the first server 112a by communication line 114. If the first server 112a fails, then the second server 112b registers with the switch 108 using the endpoint identifier that the first server 112a was previously using. The data and media are either sent directly to the first server 112a or the second server 112b. The data and media have to be mirrored if the alternate server wants to become aware of the other server's activity and state. The second server 112b also uses the data that has been mirrored to it from the first server 112a and begins fulfilling the role of the first server 112a. Mirroring is used so that both the first server 112a and the second server 112b do not need to be registered with the switch 108 at the same time. It is advantageous to save the number of endpoint identifiers required of the switch 108 since the switch 108 only has a limited number of endpoint identifiers to offer in creating a conference.
The cost for purchasing servers enabled with this mirroring capability is relatively large compared to the cost for purchasing servers without a mirroring capability. Also, these systems require a large amount of redesign to take full advantage of their features, which also increases their cost. A mirroring high availability application is suitable for many companies with a large budget. Unfortunately, companies and individuals still requiring high availability applications at a reduced cost that do not unnecessarily utilize switch 108 endpoint identifiers are left with few to no options.